

#include "GetAccountFromCDKeyExOp.h"


using namespace WONAPI;

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
GetAccountFromCDKeyExOp::GetAccountFromCDKeyExOp(ServerContext* theContext, std::string theCDKey, unsigned long theCommunity)
	: GetAccountFromCDKeyOp(theContext,theCDKey,theCommunity),
	  mActionFlag(ACTIONFLAG::RESET)
{
}


///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
void GetAccountFromCDKeyExOp::RunHook()
{
	SetMessageType(DBProxyAccount);
	SetSubMessageType(MSGTYPE);

	// Stores the message data
	WriteBuffer requestData;

	// Append the CDKey (string)
	requestData.AppendString(mCDKey,2);

	// Append the community (unsigned long)
	requestData.AppendLong(mCommunity);
	
	// Append the Reset or Ban flag
	requestData.AppendByte(mActionFlag);

	// Append the profile data
	mProfileData->PackRequestData(requestData,true);

	// Copy buffer into the class
	SetProxyRequestData(requestData.ToByteBuffer());

	DBProxyOp::RunHook();
}


///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
const char* GetAccountFromCDKeyExOp::GetActionString(ACTIONFLAG actionFlag)
{
	switch(actionFlag)
	{
	case ACTIONFLAG::RESET:
		return "RESET";
	case ACTIONFLAG::BAN:
		return "BAN";
	default:
		return "Unknown Action";
	}
}


///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
